Transmission facilities between transaction programs connected to a data communication network may be conventionally classified as simplex, half-duplex or full-duplex. A simplex facility provides unidirectional transmission only from one transaction program to the other. A half-duplex facility is at any given instance in time similar to simplex; however, the direction in which the data flows can be reversed or turned around usually by mutual agreement of the transaction programs engaged in a conversation or data exchange over the facility. A full-duplex facility provides simultaneous two-way data exchange between the transaction programs engaged in a conversation. In the case of half-duplex and full-duplex conversation, the transaction programs involved in the conversation normally exchange control information as well as data via the interconnecting transmission media as described above. Due to the nature of the half-duplex connection, the message and control data sequence is maintained and each of the participants in the conversation can take appropriate actions in an orderly and timely manner. However, in the case of full-duplex conversations, this is not always possible due to the simultaneous bi-direction transmission capability.
In a full-duplex environment the independence of the receive and transmit functions sent and received must be correlated and can create a major problem for application programs when status, information and response messages get out of sequence due to the independence and different delay characteristics in the two paths over which these signals travel.